package com.tourism.product.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 产品管理对象 tourism_product
 * 
 * @author silenceEcho
 * @date 2025-04-12
 */
public class TourismProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 产品id
 */
    private Long productId;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 产品描述 */
    private String productDescription;

    /** 产品类型 */
    @Excel(name = "产品类型")
    private Long productTypeId;

    /** 出发城市 */
    private String departureCity;

    /** 目的地 */
    @Excel(name = "目的地")
    private String destination;

    /** 持续天数 */
    @Excel(name = "持续天数")
    private Long durationDays;

    /** 预约时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bookingTime;

    /** 出发时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出发时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date departureDate;

    /** 最少人数 */
    @Excel(name = "最少人数")
    private Long minTravelers;

    /** 最多旅行人数 */
    private Long maxTravelers;

    /** 出行方式 */
    @Excel(name = "出行方式")
    private String travelMode;

    /** 酒店情况 */
    @Excel(name = "酒店情况")
    private String hotel;

    /** 票价 */
    @Excel(name = "票价")
    private Long adultPrice;

    /** 儿童票价 */
    @Excel(name = "儿童票价")
    private Long childPrice;

    /** 产品状态 */
    @Excel(name = "产品状态")
    private Long status;

    /** 逻辑删除 */
    private Long delete;

    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }

    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }

    public void setProductDescription(String productDescription) 
    {
        this.productDescription = productDescription;
    }

    public String getProductDescription() 
    {
        return productDescription;
    }

    public void setProductTypeId(Long productTypeId) 
    {
        this.productTypeId = productTypeId;
    }

    public Long getProductTypeId() 
    {
        return productTypeId;
    }

    public void setDepartureCity(String departureCity) 
    {
        this.departureCity = departureCity;
    }

    public String getDepartureCity() 
    {
        return departureCity;
    }

    public void setDestination(String destination) 
    {
        this.destination = destination;
    }

    public String getDestination() 
    {
        return destination;
    }

    public void setDurationDays(Long durationDays) 
    {
        this.durationDays = durationDays;
    }

    public Long getDurationDays() 
    {
        return durationDays;
    }

    public void setBookingTime(Date bookingTime) 
    {
        this.bookingTime = bookingTime;
    }

    public Date getBookingTime() 
    {
        return bookingTime;
    }

    public void setDepartureDate(Date departureDate) 
    {
        this.departureDate = departureDate;
    }

    public Date getDepartureDate() 
    {
        return departureDate;
    }

    public void setMinTravelers(Long minTravelers) 
    {
        this.minTravelers = minTravelers;
    }

    public Long getMinTravelers() 
    {
        return minTravelers;
    }

    public void setMaxTravelers(Long maxTravelers) 
    {
        this.maxTravelers = maxTravelers;
    }

    public Long getMaxTravelers() 
    {
        return maxTravelers;
    }

    public void setTravelMode(String travelMode)
    {
        this.travelMode = travelMode;
    }

    public String getTravelMode()
    {
        return travelMode;
    }

    public void setHotel(String hotel) 
    {
        this.hotel = hotel;
    }

    public String getHotel() 
    {
        return hotel;
    }

    public void setAdultPrice(Long adultPrice) 
    {
        this.adultPrice = adultPrice;
    }

    public Long getAdultPrice() 
    {
        return adultPrice;
    }

    public void setChildPrice(Long childPrice) 
    {
        this.childPrice = childPrice;
    }

    public Long getChildPrice() 
    {
        return childPrice;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setDelete(Long delete) 
    {
        this.delete = delete;
    }

    public Long getDelete() 
    {
        return delete;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("productId", getProductId())
            .append("productName", getProductName())
            .append("productDescription", getProductDescription())
            .append("productTypeId", getProductTypeId())
            .append("departureCity", getDepartureCity())
            .append("destination", getDestination())
            .append("durationDays", getDurationDays())
            .append("bookingTime", getBookingTime())
            .append("departureDate", getDepartureDate())
            .append("minTravelers", getMinTravelers())
            .append("maxTravelers", getMaxTravelers())
            .append("travelMode", getTravelMode())
            .append("hotel", getHotel())
            .append("adultPrice", getAdultPrice())
            .append("childPrice", getChildPrice())
            .append("status", getStatus())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .append("delete", getDelete())
            .toString();
    }
}
